package com.hp.service;

import com.github.pagehelper.PageInfo;
import com.hp.entity.Good;
import com.hp.vo.GoodVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @Author: LiuQiang
 * @Date: 2021/10/27 11:53
 */
public interface IGoodService {

    /**
     * 查询goods表的全部信息
     * @param type
     * @param page
     * @return
     */
    PageInfo<GoodVo> findGoodAll(Integer page, Integer type);

    /**
     * 删除商品信息，如果是今日推荐则移出
     * @param goodId
     * @return
     */
    int goodDelete(Integer goodId);

    /**
     * 根据id查询信息
     * @param type
     * @return
     */
    List<Good> findTopsAllGoodId(@Param("type") Integer type);

    /**
     * 移除今日推荐
     * @param goodId
     * @param type
     * @return
     */
    int topDelete(@RequestParam("goodId") Integer goodId);

    /**
     * 加入今日推荐
     * @param goodId
     * @return
     */
    int topSave(@RequestParam("goodId") Integer goodId);

    /**
     * 新增信息
     * @param good
     * @return
     */
    int goodSave(Good good);

    /**
     * 根据id查询信息
     * @param id
     * @return
     */
    Good findGoodById(@Param("id") Integer id);

    /**
     * 修改信息
     * @param good
     * @return
     */
    int goodUpdate(Good good);

    /**
     * 推荐商品
     * @return
     */
    List<Good> findTopsAll();

    /**
     * 热销商品，查询销量最高的商品
     * @return
     */
    List<Good> findGoodsBySales();

    /**
     * 查询产品分类的商品
     * @param id
     * @return
     */
    List<Good> findGoodAllByTypeId(Integer id);

    /**
     * 热销排行
     * @return
     */
    List<Good> findGoodsBySalesAll();

    /**
     * 新品上市
     * @return
     */
    List<Good> findGoodsBySalesNew();

    /**
     * 根据name模糊查询
     * @param name
     * @return
     */
    List<Good> findGoodsByNameLike(String name);

    /**
     * 更多推荐
     * @return
     */
    List<Good> findTopsAllToday();

    /**
     * 查看更多
     * @param typeId
     * @return
     */
    List<Good> findGoodsByTypeId(Integer typeId);

    /**
     * 根据good_id查询商品信息
     * @param goodId
     * @return
     */
    Good findGoodsByGoodId(Integer goodId);

}
